package apresentacao.caminhoneiro;

import java.util.ArrayList;
import java.util.HashMap;
import com.example.caminhoneiro.R;

import controle.caminhoneiro.Controller_Conta;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.content.Intent;
import android.text.method.HideReturnsTransformationMethod;
import android.text.method.PasswordTransformationMethod;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnFocusChangeListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Nova_Conta extends Activity implements OnClickListener, OnFocusChangeListener {

	Button btContinuar;
	EditText etNome_Sobrenome, etCPF, etSenha, etConfirmar_Senha;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.nova_conta);
		inicializar();
	}

	public void inicializar() {
		btContinuar 		= (Button) findViewById(R.id.Nova_Conta_BtContinuar);
		etNome_Sobrenome 	= (EditText) findViewById(R.id.Nova_Conta_EtNome_Sobrenome);
		etCPF 				= (EditText) findViewById(R.id.Nova_Conta_EtCPF);
		etSenha 			= (EditText) findViewById(R.id.Nova_Conta_EtSenha);
		etConfirmar_Senha 	= (EditText) findViewById(R.id.Nova_Conta_EtConfirmar_Senha);
		etNome_Sobrenome.	setOnFocusChangeListener(this);
		etCPF.				setOnFocusChangeListener(this);
		etSenha.			setOnFocusChangeListener(this);
		btContinuar.		setOnClickListener(this);
		etConfirmar_Senha.	setOnFocusChangeListener(this);
	}

	@Override
	public void onClick(View event) {
		// TODO Auto-generated method stub
		if (event.getId() == btContinuar.getId()) {
			String confirmar_Senha 	= etConfirmar_Senha.getText().toString();
			String nome 			= etNome_Sobrenome.getText().toString();
			String CPF 				= etCPF.getText().toString();
			String senha 			= etSenha.getText().toString();

			Controller_Conta controle = new Controller_Conta();
			HashMap<String, String> hash = controle.verificar_Nova_Conta_Tela1(nome, CPF, senha, confirmar_Senha, this);
			
			if(hash.size() == 0){
				Intent it = new Intent(this, Nova_Conta2.class);
				it.putExtra("nome", 			etNome_Sobrenome.getText().toString());
				it.putExtra("CPF", 				etCPF.getText().toString());
				it.putExtra("senha", 			etSenha.getText().toString());
				it.putExtra("confirmar_Senha", 	etConfirmar_Senha.getText().toString());
				startActivity(it);
			}else{
				ArrayList<String> list = new ArrayList<String>();
				String nome_Hash 	= hash.get("nome");
				if(nome_Hash != null){
					list.add(nome_Hash);
				}
				String cpf_Hash 	= hash.get("CPF");
				if(cpf_Hash != null){
					list.add(cpf_Hash);
				}
				String senha_Hash 	= hash.get("senha");
				if(senha_Hash != null){
					list.add(senha_Hash);
				}
				String erros[] = new String[list.size()];
				for(int i = 0; i <erros.length; i++){
					erros[i] = list.get(i);
				}
				ArrayAdapter<String> array = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, erros);
				AlertDialog.Builder alert = new AlertDialog.Builder(this);
				alert.setAdapter(array, null);
				alert.setNegativeButton(android.R.string.ok, new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int which) {
						// TODO Auto-generated method stub
						dialog.cancel();
					}
				});
				alert.setTitle("Erro");
				AlertDialog a = alert.create();
				a.show();
			}
		}
	}
	public void mudar_Erro(EditText edit){
		
	}

	@Override
	public void onFocusChange(View event, boolean hasFocus) {
		EditText edit = (EditText) event;
		// TODO Auto-generated method stub
		switch (event.getId()) {
			case R.id.Nova_Conta_EtNome_Sobrenome:{
				if(hasFocus && etNome_Sobrenome.getText().toString().equals(this.getString(R.string.nome_sobrenome))){
					edit.setText("");
				}
				else if(!hasFocus && etNome_Sobrenome.getText().toString().equals("")){ 
					edit.setText(this.getString(R.string.nome_sobrenome));
				}
				break;
			}
			case R.id.Nova_Conta_EtCPF:{
				if(hasFocus && etCPF.getText().toString().equals(this.getString(R.string.cpf))){
					edit.setText("");
				}
				else if(!hasFocus && etCPF.getText().toString().equals("")){ 
					edit.setText(this.getString(R.string.cpf));
				}		
				break;
			}
			case R.id.Nova_Conta_EtSenha:{
				if(hasFocus && etSenha.getText().toString().equals(this.getString(R.string.senha))){
					edit.setText("");
					edit.setTransformationMethod(PasswordTransformationMethod.getInstance());
				}
				else if(!hasFocus && etSenha.getText().toString().equals("")){ 
					edit.setText(this.getString(R.string.senha));
					edit.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
				}
				break;
			}
			case R.id.Nova_Conta_EtConfirmar_Senha:{
				if(hasFocus && etConfirmar_Senha.getText().toString().equals(this.getString(R.string.confirmar_senha))){
					edit.setText("");
					edit.setTransformationMethod(PasswordTransformationMethod.getInstance());
				}
				else if(!hasFocus && etConfirmar_Senha.getText().toString().equals("")){ 
					edit.setText(this.getString(R.string.confirmar_senha));
					edit.setTransformationMethod(HideReturnsTransformationMethod.getInstance());
				}
				break;
			}
		}
	}

}
